1 Setup

library(magrittr)
library(tidyverse)
library(glue)
library(arrow)
batch <- params$batch
futile.logger::flog.info(glue("Batch = {batch}"))
INFO [2021-05-13 12:26:23] Batch = 2020_11_04_CPJUMP1
data_path <- params$data_path
git_commit_hash <- system(glue::glue("cd {data_path}; git rev-parse HEAD; cd .."), intern = TRUE)
print(glue::glue("Git commit of {data_path} = {git_commit_hash}"))
Git commit of ../../pilot-cpjump1-data = e3b9f1beab59eef829cb6c99a493cf2940da757c
git_remote <- system(glue::glue("cd {data_path}; git remote -v; cd .."), intern = TRUE)
print(glue::glue("Git remote of {data_path} = {git_remote}"))
Git remote of ../../pilot-cpjump1-data = origin git@github.com:jump-cellpainting/pilot-cpjump1-data.git (fetch)
Git remote of ../../pilot-cpjump1-data = origin git@github.com:jump-cellpainting/pilot-cpjump1-data.git (push)

2 Display images

display_images <- function(query, lut, n_samples = 2) {
  for (i in seq(nrow(query))) {
    # get i'th query
    query_i <- slice(query, i)
    
    # get corresponding lookup row
    lut_query <-
      inner_join(lut, query_i)
#      inner_join(lut, query_i, by = intersect(names(lut), names(query)))
    
    # get tag for query
    query_tag <- paste0(query_i, collapse = "__")
    
    cat('\n\n## `', query_tag, '`\n\n')
    
    # number of replicates to display
    # NOTE: This can have unexpected output because the rows of `lut_query` may
    # not really be replicates. E.g. if we specify only `Metadata_broad_sample`
    # in a compound experiment that has multiple doses, `lut_query` will have
    # all wells of `Metadata_broad_sample` at all dose points.
    # TODO: Figure out how to handle this.
    
    n_samples <- min(n_samples, nrow(lut_query))
    
    for (j in seq(n_samples)) {
      lut_query_j <- slice(lut_query, j)
      
      lut_query_tag <- paste0(lut_query_j, collapse = "__")
      
      Metadata_thumbnail_path_j <-
        lut_query_j$Metadata_thumbnail_path
      
      image_code = glue("\n\n![{query_tag}]({Metadata_thumbnail_path_j})\n\n")
      
      cat(image_code)
      
      cat(
        lut_query_j %>%
          select(-Metadata_thumbnail_path) %>%
          mutate(across(everything(), as.character)) %>%
          pivot_longer(everything()) %>%
          format_tsv() %>%
          str_replace_all("\n", "\n\n")
      )
      
    }
    
  }
  
}
lut_files <-
  glue("{data_path}/visualize/{batch}/{batch}_.*_lut.csv")
lut <-
  list.files(dirname(lut_files), full.names = T, pattern = basename(lut_files)) %>%
  map_df(read_csv, col_types = cols()) %>%
  mutate(Metadata_thumbnail_path = 
           file.path(data_path, Metadata_thumbnail_path))
experiment <-
  data.frame(
    Metadata_experiment_condition = "Standard",
    Metadata_experiment_type = "Compound",
    Metadata_cell_line = "U2OS",
    Metadata_timepoint = 24
  )

query <- tribble(
  ~ Metadata_broad_sample,
  "BRD-K36660044-001-24-2",
  "BRD-K67637637-003-11-8",
  "BRD-K24616672-003-20-1",
  "BRD-K61688984-001-02-9",
  "BRD-K93632104-001-17-2"
)

query <- bind_cols(experiment, query)

display_images(query, lut)
Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.1 Standard__Compound__U2OS__24__BRD-K36660044-001-24-2

Standard__Compound__U2OS__24__BRD-K36660044-001-24-2 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116995

Metadata_Well F17

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 6

Metadata_Col 17

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K36660044-001-24-2

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116995

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.1163

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HDAC6

Metadata_pert_iname bufexamac

Metadata_pubchem_cid 2466

Metadata_InChIKey MXJWRABVEGLYDG-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r06c17

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__Compound__U2OS__24__BRD-K36660044-001-24-2 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117024

Metadata_Well F17

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 6

Metadata_Col 17

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K36660044-001-24-2

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117024

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 2

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.1163

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HDAC6

Metadata_pert_iname bufexamac

Metadata_pubchem_cid 2466

Metadata_InChIKey MXJWRABVEGLYDG-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r06c17

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.2 Standard__Compound__U2OS__24__BRD-K67637637-003-11-8

Standard__Compound__U2OS__24__BRD-K67637637-003-11-8 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117024

Metadata_Well M03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 13

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K67637637-003-11-8

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117024

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 2

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.8694

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target S100B

Metadata_pert_iname olopatadine

Metadata_pubchem_cid 25271818

Metadata_InChIKey JBIMVDZLSHOPLA-LSCVHKIXSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r13c03

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__Compound__U2OS__24__BRD-K67637637-003-11-8 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117025

Metadata_Well M03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 13

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K67637637-003-11-8

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117025

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 3

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.8694

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target S100B

Metadata_pert_iname olopatadine

Metadata_pubchem_cid 25271818

Metadata_InChIKey JBIMVDZLSHOPLA-LSCVHKIXSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r13c03

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.3 Standard__Compound__U2OS__24__BRD-K24616672-003-20-1

Standard__Compound__U2OS__24__BRD-K24616672-003-20-1 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116995

Metadata_Well P21

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 16

Metadata_Col 21

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K24616672-003-20-1

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116995

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.3639

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HTR3A

Metadata_pert_iname procaine

Metadata_pubchem_cid 4914

Metadata_InChIKey MFDFERRIHVXMIY-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r16c21

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__Compound__U2OS__24__BRD-K24616672-003-20-1 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117024

Metadata_Well P21

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 16

Metadata_Col 21

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K24616672-003-20-1

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117024

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 2

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.3639

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HTR3A

Metadata_pert_iname procaine

Metadata_pubchem_cid 4914

Metadata_InChIKey MFDFERRIHVXMIY-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r16c21

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.4 Standard__Compound__U2OS__24__BRD-K61688984-001-02-9

Standard__Compound__U2OS__24__BRD-K61688984-001-02-9 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116995

Metadata_Well H03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 8

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K61688984-001-02-9

Metadata_genes NA

Metadata_pert_type control

Metadata_control_type poscon_cp

Metadata_Assay_Plate_Barcode BR00116995

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.812

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HDAC3

Metadata_pert_iname RGFP966

Metadata_pubchem_cid 56650312

Metadata_InChIKey BLVQHYHDYFTPDV-VCABWLAWSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r08c03

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__Compound__U2OS__24__BRD-K61688984-001-02-9 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117024

Metadata_Well H03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 8

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K61688984-001-02-9

Metadata_genes NA

Metadata_pert_type control

Metadata_control_type poscon_cp

Metadata_Assay_Plate_Barcode BR00117024

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 2

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 1.812

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target HDAC3

Metadata_pert_iname RGFP966

Metadata_pubchem_cid 56650312

Metadata_InChIKey BLVQHYHDYFTPDV-VCABWLAWSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r08c03

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.5 Standard__Compound__U2OS__24__BRD-K93632104-001-17-2

Standard__Compound__U2OS__24__BRD-K93632104-001-17-2 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117024

Metadata_Well O03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 15

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K93632104-001-17-2

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117024

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 2

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 0.6906

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target AKR1C1

Metadata_pert_iname salicylic-acid|sodium-salicylate

Metadata_pubchem_cid 118212070

Metadata_InChIKey YGSDEFSMJLZEOE-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r15c03

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__Compound__U2OS__24__BRD-K93632104-001-17-2 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117025

Metadata_Well O03

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 15

Metadata_Col 3

Metadata_plate_map_name C-7210-01-CMP-013

Metadata_broad_sample BRD-K93632104-001-17-2

Metadata_genes NA

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117025

Metadata_Plate_Map_Name C-7210-01-CMP-013

Metadata_cell_line U2OS

Metadata_timepoint 24

Metadata_experiment_type Compound

Metadata_experiment_condition Standard

Metadata_replicate_id 3

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml 0.6906

Metadata_mmoles_per_liter 5

Metadata_solvent DMSO

Metadata_target AKR1C1

Metadata_pert_iname salicylic-acid|sodium-salicylate

Metadata_pubchem_cid 118212070

Metadata_InChIKey YGSDEFSMJLZEOE-UHFFFAOYSA-N

Metadata_gene NA

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r15c03

Metadata_cachedir image_cache

Metadata_montagedir montage

experiment <-
  data.frame(
    Metadata_experiment_condition = "Standard",
    Metadata_experiment_type = "CRISPR",
    Metadata_cell_line = "U2OS",
    Metadata_timepoint = 144
  )

query <- tribble(
  ~ Metadata_broad_sample,
  "BRDN0001146959",
  "BRDN0000585461",
  "BRDN0001483257",
  "BRDN0001480092",
  "BRDN0001054815"
)

query <- bind_cols(experiment, query)

display_images(query, lut)
Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.6 Standard__CRISPR__U2OS__144__BRDN0001146959

Standard__CRISPR__U2OS__144__BRDN0001146959 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116996

Metadata_Well C08

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 3

Metadata_Col 8

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001146959

Metadata_genes CSF1R

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116996

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 4

Metadata_negcon_control_type NA

Metadata_target_sequence ACGCTACCTTCCAAAACACG

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target CSF1R

Metadata_pert_iname BRDN0001146959

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene CSF1R

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r03c08

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__CRISPR__U2OS__144__BRDN0001146959 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116997

Metadata_Well C08

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 3

Metadata_Col 8

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001146959

Metadata_genes CSF1R

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116997

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence ACGCTACCTTCCAAAACACG

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target CSF1R

Metadata_pert_iname BRDN0001146959

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene CSF1R

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r03c08

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.7 Standard__CRISPR__U2OS__144__BRDN0000585461

Standard__CRISPR__U2OS__144__BRDN0000585461 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116996

Metadata_Well M23

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 13

Metadata_Col 23

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0000585461

Metadata_genes HCK

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116996

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 4

Metadata_negcon_control_type NA

Metadata_target_sequence CCGTGCGAGACTACGACCCT

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HCK

Metadata_pert_iname BRDN0000585461

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HCK

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r13c23

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__CRISPR__U2OS__144__BRDN0000585461 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116997

Metadata_Well M23

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 13

Metadata_Col 23

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0000585461

Metadata_genes HCK

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116997

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence CCGTGCGAGACTACGACCCT

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HCK

Metadata_pert_iname BRDN0000585461

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HCK

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r13c23

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.8 Standard__CRISPR__U2OS__144__BRDN0001483257

Standard__CRISPR__U2OS__144__BRDN0001483257 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116996

Metadata_Well I04

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 9

Metadata_Col 4

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001483257

Metadata_genes HSP90AA1

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00116996

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 4

Metadata_negcon_control_type NA

Metadata_target_sequence GATCAAAAGGAGCACGTCGT

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HSP90AA1

Metadata_pert_iname BRDN0001483257

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HSP90AA1

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r09c04

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__CRISPR__U2OS__144__BRDN0001483257 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116997

Metadata_Well I04

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 9

Metadata_Col 4

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001483257

Metadata_genes HSP90AA1

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00116997

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence GATCAAAAGGAGCACGTCGT

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HSP90AA1

Metadata_pert_iname BRDN0001483257

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HSP90AA1

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r09c04

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.9 Standard__CRISPR__U2OS__144__BRDN0001480092

Standard__CRISPR__U2OS__144__BRDN0001480092 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116996

Metadata_Well F12

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 6

Metadata_Col 12

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001480092

Metadata_genes PARP3

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116996

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 4

Metadata_negcon_control_type NA

Metadata_target_sequence AGCAAGCAACAGATTGCACG

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target PARP3

Metadata_pert_iname BRDN0001480092

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene PARP3

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r06c12

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__CRISPR__U2OS__144__BRDN0001480092 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116997

Metadata_Well F12

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 6

Metadata_Col 12

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001480092

Metadata_genes PARP3

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00116997

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence AGCAAGCAACAGATTGCACG

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target PARP3

Metadata_pert_iname BRDN0001480092

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene PARP3

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r06c12

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.10 Standard__CRISPR__U2OS__144__BRDN0001054815

Standard__CRISPR__U2OS__144__BRDN0001054815 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116996

Metadata_Well D21

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 4

Metadata_Col 21

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001054815

Metadata_genes KRAS

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00116996

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 4

Metadata_negcon_control_type NA

Metadata_target_sequence CAGTACATGAGGACTGGGGA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target KRAS

Metadata_pert_iname BRDN0001054815

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene KRAS

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r04c21

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__CRISPR__U2OS__144__BRDN0001054815 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00116997

Metadata_Well D21

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 4

Metadata_Col 21

Metadata_plate_map_name DXH.92.93.94.95.A

Metadata_broad_sample BRDN0001054815

Metadata_genes KRAS

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00116997

Metadata_Plate_Map_Name DXH.92.93.94.95.A

Metadata_cell_line U2OS

Metadata_timepoint 144

Metadata_experiment_type CRISPR

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence CAGTACATGAGGACTGGGGA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target KRAS

Metadata_pert_iname BRDN0001054815

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene KRAS

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r04c21

Metadata_cachedir image_cache

Metadata_montagedir montage

experiment <-
  data.frame(
    Metadata_experiment_condition = "Standard",
    Metadata_experiment_type = "ORF",
    Metadata_cell_line = "U2OS",
    Metadata_timepoint = 48
  )

query <- tribble(
  ~ Metadata_broad_sample,
  "ccsbBroad304_14597",
  "ccsbBroad304_00733",
  "ccsbBroad304_06412",
  "ccsbBroad304_07535",
  "ccsbBroad304_16173"
)

query <- bind_cols(experiment, query)

display_images(query, lut)
Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.11 Standard__ORF__U2OS__48__ccsbBroad304_14597

Standard__ORF__U2OS__48__ccsbBroad304_14597 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well D14

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 4

Metadata_Col 14

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_14597

Metadata_genes CSF1R

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target CSF1R

Metadata_pert_iname ccsbBroad304_14597

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene CSF1R

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r04c14

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__ORF__U2OS__48__ccsbBroad304_14597 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well J07

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 10

Metadata_Col 7

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_14597

Metadata_genes CSF1R

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target CSF1R

Metadata_pert_iname ccsbBroad304_14597

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene CSF1R

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r10c07

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.12 Standard__ORF__U2OS__48__ccsbBroad304_00733

Standard__ORF__U2OS__48__ccsbBroad304_00733 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well O01

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 15

Metadata_Col 1

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_00733

Metadata_genes HCK

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HCK

Metadata_pert_iname ccsbBroad304_00733

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HCK

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r15c01

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__ORF__U2OS__48__ccsbBroad304_00733 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well O20

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 15

Metadata_Col 20

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_00733

Metadata_genes HCK

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HCK

Metadata_pert_iname ccsbBroad304_00733

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HCK

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r15c20

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.13 Standard__ORF__U2OS__48__ccsbBroad304_06412

Standard__ORF__U2OS__48__ccsbBroad304_06412 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well C14

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 3

Metadata_Col 14

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_06412

Metadata_genes HSP90AA1

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HSP90AA1

Metadata_pert_iname ccsbBroad304_06412

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HSP90AA1

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r03c14

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__ORF__U2OS__48__ccsbBroad304_06412 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well E13

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 5

Metadata_Col 13

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_06412

Metadata_genes HSP90AA1

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target HSP90AA1

Metadata_pert_iname ccsbBroad304_06412

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene HSP90AA1

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r05c13

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.14 Standard__ORF__U2OS__48__ccsbBroad304_07535

Standard__ORF__U2OS__48__ccsbBroad304_07535 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well H21

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 8

Metadata_Col 21

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_07535

Metadata_genes PARP3

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target PARP3

Metadata_pert_iname ccsbBroad304_07535

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene PARP3

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r08c21

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__ORF__U2OS__48__ccsbBroad304_07535 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well J20

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 10

Metadata_Col 20

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_07535

Metadata_genes PARP3

Metadata_pert_type trt

Metadata_control_type NA

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target PARP3

Metadata_pert_iname ccsbBroad304_07535

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene PARP3

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r10c20

Metadata_cachedir image_cache

Metadata_montagedir montage

Joining, by = c("Metadata_broad_sample", "Metadata_cell_line", "Metadata_timepoint", "Metadata_experiment_type", "Metadata_experiment_condition")

2.15 Standard__ORF__U2OS__48__ccsbBroad304_16173

Standard__ORF__U2OS__48__ccsbBroad304_16173 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well D17

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 4

Metadata_Col 17

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_16173

Metadata_genes KRAS

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target KRAS

Metadata_pert_iname ccsbBroad304_16173

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene KRAS

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r04c17

Metadata_cachedir image_cache

Metadata_montagedir montage

Standard__ORF__U2OS__48__ccsbBroad304_16173 name value

Metadata_Batch 2020_11_04_CPJUMP1

Metadata_Plate BR00117022

Metadata_Well F08

Metadata_Site 1

Metadata_FieldID 1

Metadata_Row 6

Metadata_Col 8

Metadata_plate_map_name DOG.30.31.32.33.A

Metadata_broad_sample ccsbBroad304_16173

Metadata_genes KRAS

Metadata_pert_type control

Metadata_control_type poscon_diverse

Metadata_Assay_Plate_Barcode BR00117022

Metadata_Plate_Map_Name DOG.30.31.32.33.A

Metadata_cell_line U2OS

Metadata_timepoint 48

Metadata_experiment_type ORF

Metadata_experiment_condition Standard

Metadata_replicate_id 1

Metadata_negcon_control_type NA

Metadata_target_sequence NA

Metadata_mg_per_ml NA

Metadata_mmoles_per_liter NA

Metadata_solvent NA

Metadata_target KRAS

Metadata_pert_iname ccsbBroad304_16173

Metadata_pubchem_cid NA

Metadata_InChIKey NA

Metadata_gene KRAS

Metadata_negcon_or_other pert

Metadata_negcon_control_type_trimmed NA

Metadata_WellCode r06c08

Metadata_cachedir image_cache

Metadata_montagedir montage

LS0tCnRpdGxlOiAiRGlzcGxheSBpbWFnZXMgZGVtbyIKcGFyYW1zOgogIGJhdGNoOiAyMDIwXzExXzA0X0NQSlVNUDEKICBkYXRhX3BhdGg6IC4uLy4uL3BpbG90LWNwanVtcDEtZGF0YQotLS0KCiMgU2V0dXAKCmBgYHtyIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkobWFncml0dHIpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdsdWUpCmxpYnJhcnkoYXJyb3cpCmBgYAoKCmBgYHtyfQpiYXRjaCA8LSBwYXJhbXMkYmF0Y2gKZnV0aWxlLmxvZ2dlcjo6ZmxvZy5pbmZvKGdsdWUoIkJhdGNoID0ge2JhdGNofSIpKQpgYGAKCgpgYGB7cn0KZGF0YV9wYXRoIDwtIHBhcmFtcyRkYXRhX3BhdGgKZ2l0X2NvbW1pdF9oYXNoIDwtIHN5c3RlbShnbHVlOjpnbHVlKCJjZCB7ZGF0YV9wYXRofTsgZ2l0IHJldi1wYXJzZSBIRUFEOyBjZCAuLiIpLCBpbnRlcm4gPSBUUlVFKQpwcmludChnbHVlOjpnbHVlKCJHaXQgY29tbWl0IG9mIHtkYXRhX3BhdGh9ID0ge2dpdF9jb21taXRfaGFzaH0iKSkKZ2l0X3JlbW90ZSA8LSBzeXN0ZW0oZ2x1ZTo6Z2x1ZSgiY2Qge2RhdGFfcGF0aH07IGdpdCByZW1vdGUgLXY7IGNkIC4uIiksIGludGVybiA9IFRSVUUpCnByaW50KGdsdWU6OmdsdWUoIkdpdCByZW1vdGUgb2Yge2RhdGFfcGF0aH0gPSB7Z2l0X3JlbW90ZX0iKSkKYGBgCgoKIyBEaXNwbGF5IGltYWdlcwoKYGBge3J9CmRpc3BsYXlfaW1hZ2VzIDwtIGZ1bmN0aW9uKHF1ZXJ5LCBsdXQsIG5fc2FtcGxlcyA9IDIpIHsKICBmb3IgKGkgaW4gc2VxKG5yb3cocXVlcnkpKSkgewogICAgIyBnZXQgaSd0aCBxdWVyeQogICAgcXVlcnlfaSA8LSBzbGljZShxdWVyeSwgaSkKICAgIAogICAgIyBnZXQgY29ycmVzcG9uZGluZyBsb29rdXAgcm93CiAgICBsdXRfcXVlcnkgPC0KICAgICAgaW5uZXJfam9pbihsdXQsIHF1ZXJ5X2kpCiMgICAgICBpbm5lcl9qb2luKGx1dCwgcXVlcnlfaSwgYnkgPSBpbnRlcnNlY3QobmFtZXMobHV0KSwgbmFtZXMocXVlcnkpKSkKICAgIAogICAgIyBnZXQgdGFnIGZvciBxdWVyeQogICAgcXVlcnlfdGFnIDwtIHBhc3RlMChxdWVyeV9pLCBjb2xsYXBzZSA9ICJfXyIpCiAgICAKICAgIGNhdCgnXG5cbiMjIGAnLCBxdWVyeV90YWcsICdgXG5cbicpCiAgICAKICAgICMgbnVtYmVyIG9mIHJlcGxpY2F0ZXMgdG8gZGlzcGxheQogICAgIyBOT1RFOiBUaGlzIGNhbiBoYXZlIHVuZXhwZWN0ZWQgb3V0cHV0IGJlY2F1c2UgdGhlIHJvd3Mgb2YgYGx1dF9xdWVyeWAgbWF5CiAgICAjIG5vdCByZWFsbHkgYmUgcmVwbGljYXRlcy4gRS5nLiBpZiB3ZSBzcGVjaWZ5IG9ubHkgYE1ldGFkYXRhX2Jyb2FkX3NhbXBsZWAKICAgICMgaW4gYSBjb21wb3VuZCBleHBlcmltZW50IHRoYXQgaGFzIG11bHRpcGxlIGRvc2VzLCBgbHV0X3F1ZXJ5YCB3aWxsIGhhdmUKICAgICMgYWxsIHdlbGxzIG9mIGBNZXRhZGF0YV9icm9hZF9zYW1wbGVgIGF0IGFsbCBkb3NlIHBvaW50cy4KICAgICMgVE9ETzogRmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoaXMuCiAgICAKICAgIG5fc2FtcGxlcyA8LSBtaW4obl9zYW1wbGVzLCBucm93KGx1dF9xdWVyeSkpCiAgICAKICAgIGZvciAoaiBpbiBzZXEobl9zYW1wbGVzKSkgewogICAgICBsdXRfcXVlcnlfaiA8LSBzbGljZShsdXRfcXVlcnksIGopCiAgICAgIAogICAgICBsdXRfcXVlcnlfdGFnIDwtIHBhc3RlMChsdXRfcXVlcnlfaiwgY29sbGFwc2UgPSAiX18iKQogICAgICAKICAgICAgTWV0YWRhdGFfdGh1bWJuYWlsX3BhdGhfaiA8LQogICAgICAgIGx1dF9xdWVyeV9qJE1ldGFkYXRhX3RodW1ibmFpbF9wYXRoCiAgICAgIAogICAgICBpbWFnZV9jb2RlID0gZ2x1ZSgiXG5cbiFbe3F1ZXJ5X3RhZ31dKHtNZXRhZGF0YV90aHVtYm5haWxfcGF0aF9qfSlcblxuIikKICAgICAgCiAgICAgIGNhdChpbWFnZV9jb2RlKQogICAgICAKICAgICAgY2F0KAogICAgICAgIGx1dF9xdWVyeV9qICU+JQogICAgICAgICAgc2VsZWN0KC1NZXRhZGF0YV90aHVtYm5haWxfcGF0aCkgJT4lCiAgICAgICAgICBtdXRhdGUoYWNyb3NzKGV2ZXJ5dGhpbmcoKSwgYXMuY2hhcmFjdGVyKSkgJT4lCiAgICAgICAgICBwaXZvdF9sb25nZXIoZXZlcnl0aGluZygpKSAlPiUKICAgICAgICAgIGZvcm1hdF90c3YoKSAlPiUKICAgICAgICAgIHN0cl9yZXBsYWNlX2FsbCgiXG4iLCAiXG5cbiIpCiAgICAgICkKICAgICAgCiAgICB9CiAgICAKICB9CiAgCn0KYGBgCgoKYGBge3J9Cmx1dF9maWxlcyA8LQogIGdsdWUoIntkYXRhX3BhdGh9L3Zpc3VhbGl6ZS97YmF0Y2h9L3tiYXRjaH1fLipfbHV0LmNzdiIpCmBgYAoKCmBgYHtyfQpsdXQgPC0KICBsaXN0LmZpbGVzKGRpcm5hbWUobHV0X2ZpbGVzKSwgZnVsbC5uYW1lcyA9IFQsIHBhdHRlcm4gPSBiYXNlbmFtZShsdXRfZmlsZXMpKSAlPiUKICBtYXBfZGYocmVhZF9jc3YsIGNvbF90eXBlcyA9IGNvbHMoKSkgJT4lCiAgbXV0YXRlKE1ldGFkYXRhX3RodW1ibmFpbF9wYXRoID0gCiAgICAgICAgICAgZmlsZS5wYXRoKGRhdGFfcGF0aCwgTWV0YWRhdGFfdGh1bWJuYWlsX3BhdGgpKQpgYGAKCgpgYGB7ciByZXN1bHRzPSdhc2lzJywgZmlnLndpZHRoPTIwfQpleHBlcmltZW50IDwtCiAgZGF0YS5mcmFtZSgKICAgIE1ldGFkYXRhX2V4cGVyaW1lbnRfY29uZGl0aW9uID0gIlN0YW5kYXJkIiwKICAgIE1ldGFkYXRhX2V4cGVyaW1lbnRfdHlwZSA9ICJDb21wb3VuZCIsCiAgICBNZXRhZGF0YV9jZWxsX2xpbmUgPSAiVTJPUyIsCiAgICBNZXRhZGF0YV90aW1lcG9pbnQgPSAyNAogICkKCnF1ZXJ5IDwtIHRyaWJibGUoCiAgfiBNZXRhZGF0YV9icm9hZF9zYW1wbGUsCiAgIkJSRC1LMzY2NjAwNDQtMDAxLTI0LTIiLAogICJCUkQtSzY3NjM3NjM3LTAwMy0xMS04IiwKICAiQlJELUsyNDYxNjY3Mi0wMDMtMjAtMSIsCiAgIkJSRC1LNjE2ODg5ODQtMDAxLTAyLTkiLAogICJCUkQtSzkzNjMyMTA0LTAwMS0xNy0yIgopCgpxdWVyeSA8LSBiaW5kX2NvbHMoZXhwZXJpbWVudCwgcXVlcnkpCgpkaXNwbGF5X2ltYWdlcyhxdWVyeSwgbHV0KQpgYGAKCgpgYGB7ciByZXN1bHRzPSdhc2lzJywgZmlnLndpZHRoPTIwfQpleHBlcmltZW50IDwtCiAgZGF0YS5mcmFtZSgKICAgIE1ldGFkYXRhX2V4cGVyaW1lbnRfY29uZGl0aW9uID0gIlN0YW5kYXJkIiwKICAgIE1ldGFkYXRhX2V4cGVyaW1lbnRfdHlwZSA9ICJDUklTUFIiLAogICAgTWV0YWRhdGFfY2VsbF9saW5lID0gIlUyT1MiLAogICAgTWV0YWRhdGFfdGltZXBvaW50ID0gMTQ0CiAgKQoKcXVlcnkgPC0gdHJpYmJsZSgKICB+IE1ldGFkYXRhX2Jyb2FkX3NhbXBsZSwKICAiQlJETjAwMDExNDY5NTkiLAogICJCUkROMDAwMDU4NTQ2MSIsCiAgIkJSRE4wMDAxNDgzMjU3IiwKICAiQlJETjAwMDE0ODAwOTIiLAogICJCUkROMDAwMTA1NDgxNSIKKQoKcXVlcnkgPC0gYmluZF9jb2xzKGV4cGVyaW1lbnQsIHF1ZXJ5KQoKZGlzcGxheV9pbWFnZXMocXVlcnksIGx1dCkKYGBgCgoKYGBge3IgcmVzdWx0cz0nYXNpcycsIGZpZy53aWR0aD0yMH0KZXhwZXJpbWVudCA8LQogIGRhdGEuZnJhbWUoCiAgICBNZXRhZGF0YV9leHBlcmltZW50X2NvbmRpdGlvbiA9ICJTdGFuZGFyZCIsCiAgICBNZXRhZGF0YV9leHBlcmltZW50X3R5cGUgPSAiT1JGIiwKICAgIE1ldGFkYXRhX2NlbGxfbGluZSA9ICJVMk9TIiwKICAgIE1ldGFkYXRhX3RpbWVwb2ludCA9IDQ4CiAgKQoKcXVlcnkgPC0gdHJpYmJsZSgKICB+IE1ldGFkYXRhX2Jyb2FkX3NhbXBsZSwKICAiY2NzYkJyb2FkMzA0XzE0NTk3IiwKICAiY2NzYkJyb2FkMzA0XzAwNzMzIiwKICAiY2NzYkJyb2FkMzA0XzA2NDEyIiwKICAiY2NzYkJyb2FkMzA0XzA3NTM1IiwKICAiY2NzYkJyb2FkMzA0XzE2MTczIgopCgpxdWVyeSA8LSBiaW5kX2NvbHMoZXhwZXJpbWVudCwgcXVlcnkpCgpkaXNwbGF5X2ltYWdlcyhxdWVyeSwgbHV0KQpgYGAKCg==